#ifndef SRDATABASE_H
#define SRDATABASE_H

#include <QObject>
#include <QSqlDatabase>


class SRDatabase : public QObject
{
    Q_OBJECT
public:

    static SRDatabase* DB(void);

    int open(const QString& _user,
             const QString& _pswd,
             QString& out_userName);

    int close(void);

    int checkUser(const QString& _user,
                  const QString& _pswd);

    int registerUser(const QString &_name, const QString &_user,
                   const QString &_pswd);

    int modifyPswd(const QString& _newPswd);
    int modifyUserName(const QString& _newName);


    int execSql(const QString& _sql);

public:

    // ture : 存在 false : 不存在
    static bool isExist(void);

    // 注册初始化数据库
    static int registerDB(const QString &_name, const QString &_user,
                   const QString &_pswd);

    static void DBPath(QString& path);

    static QString encryptionPswd(const QString& _pswd);
private:

    explicit SRDatabase(QObject *parent = 0);
    ~SRDatabase(void);


signals:

public slots:


private:
    QSqlDatabase sqlDatabase_;
    static QString strFilename_;
    static SRDatabase dbInstance_;

private:

    QString user_;
    QString pswd_;
    QString userName_;

};

#endif // SRDATABASE_H
